- 
                Notifications
    You must be signed in to change notification settings 
- Fork 132
Fix: Standardize UI/UX for GitHub Badges #1068
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| @steam-bell-92 is attempting to deploy a commit to the recode Team on Vercel. A member of the Team first needs to authorize it. | 
| Thank you for submitting your pull request! 🙌 We'll review it as soon as possible. The estimated time for response is 5–8 hrs. In the meantime, please provide all necessary screenshots and make sure you run - npm build run , command and provide a screenshot, a video recording, or an image of the update you made below, which helps speed up the review and assignment. If you have questions, reach out to LinkedIn. Your contributions are highly appreciated!😊 Note: I maintain the repo issue every day twice at 8:00 AM IST and 9:00 PM IST. If your PR goes stale for more than one day, you can tag and comment on this same issue by tagging @sanjay-kv. We are here to help you on this journey of open source. Consistent 20 contributions are eligible for sponsorship 💰 🎁 check our list of amazing people we sponsored so far: GitHub Sponsorship. ✨ 📚Your perks for contribution to this community 👇🏻 
 If there are any specific instructions or feedback regarding your PR, we'll provide them here. Thanks again for your contribution! 😊 | 
| ✅ Synchronized metadata from Issue #1059: 
 | 
…splay "Level: Default" (singular) since this badge only has one tier, not multiple levels. Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
| ✅ Synchronized metadata from Issue #1059: 
 | 
| ✅ Synchronized metadata from Issue #1059: 
 | 
| whileHover={{ scale: 1.02 }} | ||
| style={{ boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }} | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The boxShadow animation has been moved from the whileHover prop to a static style prop, changing the hover animation behavior. The shadow should only appear and animate on hover, but is now always visible.
View Details
📝 Patch Details
diff --git a/src/pages/badges/github-badges.tsx b/src/pages/badges/github-badges.tsx
index 1c9f98e..a012f7e 100644
--- a/src/pages/badges/github-badges.tsx
+++ b/src/pages/badges/github-badges.tsx
@@ -246,8 +246,7 @@ const GithubBadgesContent = (): React.ReactElement => {
                   whileInView={{ opacity: 1, y: 0 }}
                   viewport={{ once: true }}
                   transition={{ duration: 0.5, delay: 0.05 }}
-                  whileHover={{ scale: 1.02 }}
-                  style={{ boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
+                  whileHover={{ scale: 1.02, boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
                 >
                   <td>
                     <motion.img
@@ -323,8 +322,7 @@ const GithubBadgesContent = (): React.ReactElement => {
                   whileInView={{ opacity: 1, y: 0 }}
                   viewport={{ once: true }}
                   transition={{ duration: 0.5, delay: 0.05 }}
-                  whileHover={{ scale: 1.02 }}
-                  style={{ boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
+                  whileHover={{ scale: 1.02, boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
                 >
                   <td>
                     <motion.img
@@ -365,8 +363,7 @@ const GithubBadgesContent = (): React.ReactElement => {
                   whileInView={{ opacity: 1, y: 0 }}
                   viewport={{ once: true }}
                   transition={{ duration: 0.5, delay: 0.05 }}
-                  whileHover={{ scale: 1.02 }}
-                  style={{ boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
+                  whileHover={{ scale: 1.02, boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
                 >
                   <td>
                     <motion.img
@@ -443,8 +440,7 @@ const GithubBadgesContent = (): React.ReactElement => {
                   whileInView={{ opacity: 1, y: 0 }}
                   viewport={{ once: true }}
                   transition={{ duration: 0.5, delay: 0.05 }}
-                  whileHover={{ scale: 1.02 }}
-                  style={{ boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
+                  whileHover={{ scale: 1.02, boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
                 >
                   <td>
                     <motion.img
@@ -518,8 +514,7 @@ const GithubBadgesContent = (): React.ReactElement => {
                   whileInView={{ opacity: 1, y: 0 }}
                   viewport={{ once: true }}
                   transition={{ duration: 0.5, delay: 0.05 }}
-                  whileHover={{ scale: 1.02 }}
-                  style={{ boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
+                  whileHover={{ scale: 1.02, boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
                 >
                   <td>
                     <motion.img
@@ -593,8 +588,7 @@ const GithubBadgesContent = (): React.ReactElement => {
                   whileInView={{ opacity: 1, y: 0 }}
                   viewport={{ once: true }}
                   transition={{ duration: 0.5, delay: 0.05 }}
-                  whileHover={{ scale: 1.02 }}
-                  style={{ boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
+                  whileHover={{ scale: 1.02, boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
                 >
                   <td>
                     <motion.img
@@ -647,8 +641,7 @@ const GithubBadgesContent = (): React.ReactElement => {
                   whileInView={{ opacity: 1, y: 0 }}
                   viewport={{ once: true }}
                   transition={{ duration: 0.5, delay: 0.05 }}
-                  whileHover={{ scale: 1.02 }}
-                  style={{ boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
+                  whileHover={{ scale: 1.02, boxShadow: "0 4px 20px rgba(0,0,0,0.07)" }}
                 >
                   <td>
                     <motion.img
Analysis
BoxShadow moved from whileHover to style prop breaks hover animations
What fails: Seven motion.tr elements have boxShadow in style prop instead of whileHover, making shadows always visible instead of animating on hover
How to reproduce:
# View the GitHub badges page
npm start
# Navigate to /badges/github-badges
# Observe table rows have permanent shadows instead of hover-triggered animationsResult: Box shadows are permanently visible on all badge table rows (Starstruck, Quickdraw, Pair Extraordinaire, Pull Shark, Galaxy Brain, YOLO, Public Sponsor)
Expected: Shadows should only appear with smooth animation when hovering over table rows, as per Framer Motion whileHover documentation - whileHover creates gesture-based animations while style props are always visible
Evidence: Git history shows boxShadow was moved from whileHover: { scale: 1.02, boxShadow: "..." } to separate style: { boxShadow: "..." } prop
| The latest updates on your projects. Learn more about Vercel for GitHub. 
 | 
Description
This PR updates GitHub Badges page in Devfolio with consistent UI/UX on achievements table
Fixes #1059
Type of Change
Changes Made
Checklist
npm run buildand attached screenshot(s) in this PR.Attachments
Initial UI/UX
GitHub.Achievements.Guide.-.recode.hive.-.Google.Chrome.2025-10-25.17-36-48.mp4
Final UI/UX
GitHub.Achievements.Guide.-.recode.hive.-.Google.Chrome.2025-10-25.17-37-29.mp4